#!/bin/bash
export NDK_ROOT=/root/android-ndk-r19c
  #配置你自己解压的路径，这个是我的路径

export PATH=$NDK_ROOT:$PATH
#根据自己的路径配置

NDK_ROOT=/mnt/android-ndk-r17c

#toolchain 变量指向ndk中的交叉编译gcc所在的目录

TOOLCHAIN=$NDK_ROOT/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64

#FLAGS与INCLUDES变量 可以从AS ndk工程的.externativeBuild/cmake/debug/armeabi-v7a/build.ninja中拷贝

FLAGS="-isystem $NDK_ROOT/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv8-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11  -O0 -fPIC"

INCLUDES="-isystem $NDK_ROOT/sources/cxx-stl/llvm-libc++/include -isystem $NDK_ROOT/sources/android/support/include -isystem $NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include"

# 执行configure脚本，用于生成makefile

#--prefix :安装目录

#--enable-small：优化大小

#--isable-programs：不编译ffmpeg可执行程序,我们需要获得静态(动态)库

#--disable-avdevice：关闭avdevice模块，此模块在android中无用

#--disable-encoderrs：关闭所有的编码器，只需要播放decoder即可。

#--disable-muxers：没有推流无需muxer模块（复用器，封装器），不需要生成mp4这种文件，所以关闭

#--disable-filters：关闭视频滤镜

#--enable-cross-compile：开启交叉编译(ffmpeg比较**跨平台**，并不是所有库都有这么happy的选项)

#--cross-prefix：ndk的特定gcc编译器前缀

#--disable-shared enable-static： 不写也可以，默认就是这样的

#--sysroot

#--extra-cflags

#--arch --target-os

#

#

PREFIX=./android/arm64-v7a #可以根据自己的配置

./configure \

--prefix=$PREFIX \

--enable-small \

--disable-programs \

--disable-avdevice \

--disable-encoders \

--disable-muxers \

--disable-filters \

--enable-cross-compile \

--cross-prefix=$TOOLCHAIN/bin/aarch64-linux-androideabi- \

--enable-shared \

--disable-static \hjjjkkj

--sysroot=$NDK_ROOT/platforms/android-21/arch-arm64 \

--extra-cflags="$FLAGS $INCLUDES" \

--extra-cflags="-isysroot $NDK_ROOT/sysroot" \

--arch=aarch64 \

--target-os=android

make clean

make

make install

